Traditionally, characters have been printed using metal type which allows very detailed rendering of a character, including subtle curves and very fine lines. In modern computer devices, characters are defined on raster devices such as video display terminals or by using a multi-pin print head. Characters can be printed on a surface or displayed on a video screen as a series of dots which are printed or turned on in order to approximate as closely as possible the ideal shape of the character. When characters are small enough relative to the resolution of the display device, choosing which pixels should be displayed to accurately represent the character becomes more complex than when the character is large. A typical video monitor can display about 72 pixels per inch. At this resolution it is difficult to display legibly most type faces smaller than about twenty pixels tall.
An ideal representation of the character is usually defined in "character space" at very high resolution as one or more areas bounded by an outline or path. A character consists of one or more continuous black areas. For instance the letter "O" consists of a single closed loop, the letter "d" consists of a loop connected to a line and the letter "i" consists essentially of a dot a short distance away from a line which may have additional details such as serifs. One way of describing a character involves defining an outline of the outer edge of each contiguous black portion of the character and then filling that outline to display the character. Since characters are usually printed in dark ink on a light background, one can describe filled areas as black but one skilled in the art will recognize that characters which are light on a dark background, commonly used in video displays, are also within the teachings of this invention. This path can be represented as a sequential series of curves and/or linear line segments called edges. If a black area has interior white areas as, for instance, in the letter "O", each interior white area can also be defined by a path consisting of a series of edges.
When tracing or displaying such a character, it is generally useful to trace the edges in a consistent direction, either clockwise or counter-clockwise. If edges of an outside path are traced in the counter-clockwise direction, then the area to the left of that edge will always be black and the area to the right will always be white. If the path is traced in the clockwise direction, the black area will be on the right of the edge. Enclosed white areas should be traced in the direction opposite to the exterior path so that the black area is on the same relative side of the edge.
When a character is displayed on a raster device, those pixels which fall within the black area of the character should be displayed, that is, they should be printed on a surface or turned on for a video display. Various methods of filling a character outline are known to those skilled in the art. At high resolution or when the character is very large, multiple pixels may fall within each black area and the character can be displayed in great detail. When the character is reduced to a small size, however, or the resolution of the device is limited, certain black areas may no longer cover multiple pixels and in fact may cover only a fraction of a pixel. Displaying small characters on a device of limited resolution has been a persistent problem in the past. This is illustrated in FIG. 1 by a character on an 6.times.7 matrix. In FIG. 1 the outlines of the characters "n", "s" and "e" are illustrated. The raster display can only turn on or off entire pixels as represented by the elements of the 6.times.7 matrix.
One prior approach to this problem is the center point fill method and the improved fill method described in the copending application entitled "Dropout-Free Center Point Fill Method For Displaying Characters" by the same inventors and filed on the same date as the present application. One problem that occurs with many fill methods is that certain character features may be found in close proximity. As the display resolution decreases the pixel fill method chosen sometimes turns on pixels that cause parts of the character bitmap to touch each other that actually should not be in contact. This introduces errors in the topology of the character that greatly reduce the legibility. For example, in FIGS. 1A, 1B and 1C the "n" closes in at the bottom instead of having an open space between the legs, and the curves of the "e" and the "s" both touch the main body of the character and change the bitmap into something like a small "8".
One object of this invention is to turn on pixels according to the outline of a character using one of the fill rules such as center point fills, and modify the display by turning off or moving pixels that cause the character to close improperly.